import { ImageOptions, BaseStyleProps } from '@aws-amplify/ui-react'; import * as React from 'react'; import { ImagePropControlsProps } from './ImagePropControls'; interface UseImageProps { (initialValues: ImageOptions & BaseStyleProps): ImagePropControlsProps; } export const useImageProps: UseImageProps = (initialValues) => { const [alt, setAlt] = React.useState(initialValues.alt); const [src, setSrc] = React.useState(initialValues.src); const [objectFit, setObjectFit] = React.useState( initialValues.objectFit ); const [objectPosition, setObjectPosition] = React.useState< ImageOptions['objectPosition'] >(initialValues.objectPosition); const [backgroundColor, setBackgroundColor] = React.useState< BaseStyleProps['backgroundColor'] >(initialValues.backgroundColor); const [height, setHeight] = React.useState( initialValues.height ); const [width, setWidth] = React.useState( initialValues.width ); const [opacity, setOpacity] = React.useState( initialValues.opacity ); return React.useMemo( () => ({ alt, setAlt, src, setSrc, objectFit, setObjectFit, objectPosition, setObjectPosition, backgroundColor, setBackgroundColor, height, setHeight, width, setWidth, opacity, setOpacity, }), [ alt, setAlt, src, setSrc, objectFit, setObjectFit, objectPosition, setObjectPosition, backgroundColor, setBackgroundColor, height, setHeight, width, setWidth, opacity, setOpacity, ] ); };